home *** CD-ROM | disk | FTP | other *** search
/ PCMania 73 / PCMania CD73_1.iso / pcmania / render73 / Taller / castli17 / LATERAL.INC < prev    next >
Text File  |  1998-01-04  |  21KB  |  625 lines

  1. /* Este fichero es la versión recortada de town.inc, el  cual  es  parte  de
  2.    Castlib,  una  libreria  de  formas para la creación de castillos con POV
  3.    3.0.   La  presente  versión  de  este  "producto"  puede  ser  utilizada
  4.    libremente por cualquiera, pero  dicho  uso  implica la aceptación de las
  5.    siguientes condiciones:
  6.    1) Si alguien emplea alguna de las  estructuras  de  Castlib  1.7  debera
  7.    indicarlo  asi  al  principio  de  su fichero escenico citando tambien el
  8.    nombre de su autor.
  9.    2) Si alguien realiza alguna modificación sobre los ficheros que componen
  10.    Castlib 1.7, debera citar el producto original y su procedencia e indicar
  11.    que lo utilizado es una mutación de Castlib.
  12.    3) Este producto no es shareware sino de PAGO.  Si lo  utilizas  y  algun
  13.    dia, casualmente o no, topas con el autor de Castlib, quedaras obligado a
  14.    invitar a dicho autor a  una caña mientras le explicas como has utilizado
  15.    su producto.
  16.    4)  El  autor  rechaza  cualquier  responsabilidad por cualquier desastre
  17.    informatico, neurologico, o de  cualquier  otro  tipo  que el uso de este
  18.    producto pudiera ocasionar a cualquier ser  pensante  con  una  capacidad
  19.    mental  superior a la de una piedra.  Se entiende asimismo que el usuario
  20.    renuncia a cualquier pretensión de  reclamación, ahora y siempre, en este
  21.    o en cualquier otro universo (paralelo o no), sin excepción  espacial  ni
  22.    temporal, y liberando al autor en parte y en todo de cualquier obligación
  23.    futura.
  24.    5)  La  clausula  4  tambien  se  aplica  a  las entidades integrantes de
  25.    cualquier universo o entorno  virtual  simulado  en cualquier sistema con
  26.    capacidad de procesamiento superior al de un abaco.
  27.    6)  El  uso  de este producto y el incumplimiento de estas clausulas sera
  28.    castigado con medidas judiciales y ostracismo en PCmania. */
  29.  
  30. // ---------------------------------------------------
  31. // PANELES CUADRADOS PARA LAS CASAS            
  32. // esta viga basica esta en pos. vertical
  33. //#declare viga=box{<-1,-25,-2>,<1,25,0> texture{T_Wood14 scale<10,10,10>} }
  34. #declare viga=box{<-1,-25,-2>,<1,25,0> texture{T_Wood17 scale<5,5,5>} }
  35. //#declare tejas = texture { T_Wood12 scale<2,2,2>}
  36. #declare tejas = texture { T_Wood14 scale<.25,.25,.25>}
  37. #declare panelb=union{
  38.     box{<-25,0,0>,<25,50,2> 
  39.         texture{texcastle1}}
  40.     object{viga rotate z*90 translate <0,50,0>}
  41.     object{viga rotate z*90 translate <0,2,0>}
  42.     object{viga translate <-25,25,0>}
  43.     object{viga translate <25,25,0>}
  44. }
  45. // dos vigas cruzadas en diagonal
  46. #declare panel1=union{
  47.     object{panelb}
  48.     object{viga scale <1.5,1.33,1> rotate z*45 translate <0,25,-0.2>}
  49.     object{viga scale <1.5,1.33,1> rotate z*-45 translate <0,25,-0.3>}
  50.     }
  51. // una viga en diagonal
  52. #declare panel2=union{
  53.     object{panelb}
  54.     object{viga scale <1.5,1.33,1> rotate z*45 translate <0,25,-0.2>}
  55.     }
  56. // una viga en diagonal
  57. #declare panel3=union{
  58.     object{panelb}
  59.     object{viga scale <1.5,1.33,1> rotate z*-45 translate <0,25,-0.2>}
  60.     }
  61. // dos vigas verticales
  62. #declare panel4=union{
  63.     object{panelb}
  64.     object{viga translate <-10,25,0>}
  65.     object{viga translate <10,25,0>}
  66.     }
  67. //una viga horizontal baja y dos ventanas de tipo 1
  68. #declare panel5=union{
  69.     difference{
  70.         object{panelb}
  71.         object{recven1 translate <-12,25,-1>}
  72.         object{recven1 translate <12,25,-1>}
  73.     }
  74.     object{marcove1 translate <-12,25,3.75> }
  75.     object{marcove1 translate <12,25,3.75> }
  76.     object{viga rotate z*90 translate <0,15,0>}
  77. }
  78. //dos ventanitas cuadradas y una viga horizontal
  79. #declare panel6=union{
  80.     difference{
  81.         object{panelb}
  82.         box{<-5,15,-10>,<5,25,10> translate <-9,0,0>}
  83.         box{<-5,15,-10>,<5,25,10> translate <9,0,0>}
  84.     }
  85.     box{<-4,12,-3>,<4,15,0> translate <-9,0,0> texture{textmur1}}
  86.     box{<-4,12,-3>,<4,15,0> translate <9,0,0> texture{textmur1}}
  87.     object{viga rotate z*90 translate <0,37,0>}
  88.     }
  89. // con puerta
  90. #declare panel7=union{
  91.     difference{
  92.         object{panelb}
  93.         object{recpuer1}
  94.     }
  95.     object{puerta translate<0,0,3>}
  96. }
  97. // con puerta y dos vigas verticales
  98. #declare panel8=union{
  99.     object{panel7}
  100.     object{viga translate <-14,25,0>}
  101.     object{viga translate <14,25,0>}
  102. }
  103. // con puerta y ventanitas tipo 1
  104. #declare panel9=union{
  105.     difference{
  106.         object{panelb}
  107.         object{recpuer1}
  108.         object{recven1 translate <-12,25,-1>}
  109.         object{recven1 translate <12,25,-1>}
  110.     }
  111.     object{puerta translate<0,0,3>}
  112.     object{marcove1 translate <-12,25,3.75>}
  113.     object{marcove1 translate <12,25,3.75>}
  114. }
  115. // con puerta a la izq. y ventanita cuadrada a la der.
  116. #declare panel10=union{
  117.     difference{
  118.         object{panelb}
  119.         object{recpuer1 translate <-14,0,0>}
  120.         box{<-5,30,-10>,<5,40,10> translate <12,0,0>}
  121.     }
  122.     object{puerta translate<-14,0,3>}
  123.     box{<-4,27,-3>,<4,30,0> translate <12,0,0> texture{textmur1}}
  124. }
  125. // con puerta a la izq. y ventanita tipo 1 a la der.
  126. #declare panel11=union{
  127.     difference{
  128.         object{panelb}
  129.         object{recpuer1 translate <-14,0,0>}
  130.         object{recven1 translate <12,25,-1>}
  131.     }
  132.     object{puerta translate<-14,0,3>}
  133.     object{marcove1 translate <12,25,3.75> }
  134. }
  135. // con puerta a la izq., ventanita tipo 1 a la der. y viga diagonal
  136. #declare panel12=union{
  137.     object{panel11}
  138.     object{viga scale <1.5,1.33,1> rotate z*45 translate <0,25,-0.2>}
  139. }    
  140. //dos ventanitas tipo 1 a la altura del 1er piso
  141. #declare panel13=union{
  142.     difference{
  143.         object{panelb}
  144.         object{recven1 translate <-12,25,-1>}
  145.         object{recven1 translate <12,25,-1>}
  146.     }
  147.     object{marcove1 translate <-12,25,3.75> }
  148.     object{marcove1 translate <12,25,3.75> }
  149. }
  150. // dos vigas verticales
  151. #declare panel14=union{
  152.     difference{
  153.         object{panelb}
  154.         object{recven1 translate <0,25,-1>}
  155.     }
  156.     object{marcove1 translate <0,25,3.75> }
  157.     object{viga translate <-14,25,0>}
  158.     object{viga translate <14,25,0>}
  159. }
  160.  
  161.  
  162.  
  163. // ---------------------------------------------------
  164. // PANELES DIAGONALES PARA LOS TEJADOS DE LAS CASAS
  165. // con vigas diagonales
  166. #declare rectej45=union{
  167.     plane{y,0 inverse translate<25,0,0> rotate z*63 translate<-25,0,0> }
  168.     plane{y,0 inverse translate<25,0,0> rotate z*63 translate<-25,0,0> rotate y*180}
  169. }
  170. #declare paneld1=difference{
  171.     union{
  172.         box{<-25,0,0>,<25,50,2>}
  173.         object{viga translate<0,25,0>}
  174.         object{viga scale <1.5,1.33,1> rotate z*45 translate <-25,25,-0.2>}
  175.         object{viga scale <1.5,1.33,1> rotate z*-45 translate <25,25,-0.3>}
  176. //        pigment{ image_map{tga "piedra2.tga" }
  177. //                 translate <-.5,-.5,0> scale <14,14,1> }
  178.         texture{texcastle1}
  179.         }
  180.     object{rectej45}
  181. }
  182. // con ventana de tipo 1
  183. #declare paneld2=union{
  184.     difference{
  185.         box{<-25,0,0>,<25,50,2>}
  186.         object{rectej45}
  187.         object{recven1 translate <0,12,-1>}
  188. //        pigment{ image_map{tga "piedra2.tga" }
  189. //                 translate <-.5,-.5,0> scale <14,14,1> }
  190.         texture{texcastle1}
  191.         }    
  192.     object{marcove1 translate <0,12,3.75> }
  193. }
  194. // con puerta (habra escaleras)
  195. #declare paneld3=union{
  196.     difference{
  197.         box{<-25,0,0>,<25,50,2>}
  198.         object{rectej45}
  199.         object{recpuer1}
  200. //        pigment{ image_map{tga "piedra2.tga" }
  201. //                 translate <-.5,-.5,0> scale <14,14,1> }
  202.         texture{texcastle1}
  203.         }    
  204.     object{puerta translate<0,0,3>}
  205. }
  206. // panel diag. para lado izq.
  207. #declare paneld4=difference{
  208.     object{panel2}
  209.     plane{y,0 inverse rotate z*45 translate <-25,0,0>}
  210. }
  211. // panel diag. para lado der.
  212. #declare paneld5=difference{
  213.     object{panel3}
  214.     plane{y,0 inverse rotate z*45 translate <-25,0,0> rotate y*180}
  215. }
  216. // panel doble ( 4+5 ) con ventana central (desde -50X a +50X)
  217. #declare paneld6=union{
  218.     difference{
  219.         union{
  220.             object{paneld4 translate <-25,0,0>}
  221.             object{paneld5 translate <25,0,0>}
  222.             }
  223.         object{recven1 translate <0,15,-1>}
  224.         }
  225.     object{marcove1 translate <0,15,3.75> }
  226. }
  227.  
  228.  
  229. // ---------------------------------------------------
  230. // MACROS DE TEJADOS DE LAS CASAS
  231.  
  232. #declare irectej1=difference{box{<-32,0,-31>,<33,50,31>
  233.     translate<25,0,0> rotate z*63 translate<-25,0,0> }
  234.     plane{y,51 inverse}
  235.     texture{tejas}
  236. }
  237. #declare rectej1=union{
  238.     object{irectej1}
  239.     object{irectej1 rotate y*180}
  240. #declare mtej1=difference{
  241.     object{irectej1}
  242.     box{<-40,0,-40>,<40,60,40> translate<25,0,0> rotate z*63 translate<-28,0,0>}
  243. }
  244. // tejado para "casas" de 5 metros de ancho
  245. #declare tejado1=union{
  246.     object{mtej1}
  247.     object{mtej1 rotate y*180}
  248.     texture{tejas}
  249. }    
  250. // tejado de 45 grados
  251. #declare irectej2=difference{box{<-41,0,-31>,<50,50,31>
  252.     rotate z*45 translate<0,25,0>}
  253.     plane{y,51 inverse}
  254.     texture{tejas}
  255. }
  256. #declare rectej2=union{
  257.     object{irectej2}
  258.     object{irectej2 rotate y*180}
  259. }
  260. // tejado para partes adosadas
  261. #declare mtej2=difference{
  262.     object{irectej2}
  263.     box{<-50,0,-40>,<60,60,40> rotate z*45 translate<-3,25,0> }
  264.     texture{tejas}
  265. }
  266.  
  267. // ---------------------------------------------------
  268. //ESCALERAS
  269. /*  Este  tramo  de escaleras se usa para alcanzar las puertas colocadas a 5
  270.    metros de altura (de las casas).  Sube  de der.  a izq., Tiene 1.5 metros
  271.    de ancho y 5 metros de largo.  Consta de 25 peldaños */
  272. #declare escal5m= union{
  273.     #declare pel=0
  274.     #declare alt=50
  275.     #declare xpel=-5
  276.     #while (pel!=20)
  277. //        box{<-25,alt-2.5,-15>,<xpel,alt,0>}
  278.         box{<-25,alt-2.5,-7.5>,<xpel,alt,7.5>}
  279.         #declare alt=alt-2.5
  280.         #declare pel=pel+1
  281.         #declare xpel=xpel+2.5
  282.     #end    
  283. //    pigment{image_map{tga "piedra22.tga" map_type 0} scale <14,14,1>}
  284. }
  285.  
  286. #declare escal5=merge{
  287.     difference{
  288.         object{escal5m}
  289.         box{<-26,-1,-7.49>,<xpel,51,7.49>}
  290. //        pigment{image_map{tga "piedra22.tga" map_type 0} scale <14,14,1>}
  291.         }
  292.     intersection{
  293.         object{escal5m}
  294.         box{<-26,-1,-7.49>,<xpel,51,7.49>}
  295. //        pigment{image_map{tga "piedra22.tga" map_type 0} scale <14,14,1>
  296. //                rotate x*90}
  297.         }
  298.     translate<0,0,-7.5>
  299. }
  300.  
  301. //la misma escalera con puerta
  302. #declare escal51=union{
  303.     difference{
  304.         object{escal5}
  305.         object{recpuer1 translate<-12,0,-12>}
  306.         }        
  307.     object{puerta translate<-12,0,-12>}
  308. }
  309. //idem. con arco (en esquinas)
  310. #declare escal52=union{
  311.     difference{
  312.         object{escal5}
  313.         object{recpuer1 translate<0,-10,0> scale <1.3,2.5,5>
  314.                         translate<-14,10,-12>}
  315.         object{recpuer1 translate<0,-10,0> scale <1.3,2.5,1> rotate y*90
  316.                         translate<-22,10,-4>}
  317.         }        
  318.     object{marcopu translate<0,-10,0> scale <1.3,2.5,.5> translate<-14,10,-14>}
  319.     difference{
  320.         object{marcopu translate<0,-10,0> scale <1.3,2.5,.5> rotate y*90
  321.                        translate<-24,10,-4>}
  322.         plane{z,0 inverse texture{textmur1} }
  323.         }
  324. }
  325.  
  326. // ---------------------------------------------------
  327. // ahora, usando las "plantas", crear ESTRUCTURAS LATERALES y COLGANTES
  328. #declare macb1=union{
  329.     object{panel9 translate<-25,0,-25>}   
  330.     object{panel5 translate<25,0,-25>}   
  331.     object{panel4 rotate y*90 translate<-50,0,0>}
  332. }
  333. #declare planta1=union{
  334.     object{macb1}       
  335.     object{macb1 rotate y*180}
  336. }
  337. #declare macb2=union{
  338.     object{panel8 translate<-25,0,-25>}   
  339.     object{panel13 translate<25,0,-25>}   
  340.     object{panel14 rotate y*90 translate<-50,0,0>}
  341. }
  342. #declare planta2=union{
  343.     object{macb2}       
  344.     object{macb2 rotate y*180}
  345. }
  346. #declare macb6=union{
  347.     object{panel5 translate<-25,0,-25>}   
  348.     object{panel5 translate<25,0,-25>}   
  349.     object{panel9 rotate y*90 translate<-50,0,0>}
  350. }
  351. #declare planta3=union{
  352.     object{macb6}       
  353.     object{macb6 rotate y*180}
  354. }
  355.  
  356. #declare macb11=union{
  357.     object{panel14 translate<-25,0,-25>}   
  358.     object{panel14 translate<25,0,-25>}   
  359.     object{panel14 rotate y*90 translate<-50,0,0>}
  360. }
  361. #declare planta4=union{
  362.     object{macb11}
  363.     object{macb11 rotate y*180}
  364. }
  365. #declare macb12=union{
  366.     object{panel5 translate<-25,0,-25>}   
  367.     object{panel5 translate<25,0,-25>}   
  368.     object{panel5 rotate y*90 translate<-50,0,0>}
  369. }
  370. #declare planta5=union{
  371.     object{macb12}
  372.     object{macb12 rotate y*180}
  373. }
  374. #declare macb13=union{
  375.     object{panel1 translate<-25,0,-25>}   
  376.     object{panel1 translate<25,0,-25>}   
  377.     object{panel1 rotate y*90 translate<-50,0,0>}
  378. }
  379. #declare planta6=union{
  380.     object{macb13}
  381.     object{macb13 rotate y*180}
  382. }
  383. #declare tejlat0=union{
  384.     object{mtej2 rotate y*90 translate <0,0,0>}
  385.     object{paneld4 rotate y*90 translate<-25,0,0>}   
  386.     object{paneld5 rotate y*-90 translate<25,0,0>}
  387. }
  388. #declare tejlat1=union{
  389.     object{mtej2 rotate y*90 translate <-25,0,0>}
  390.     object{mtej2 rotate y*90 translate <25,0,0>}
  391.     object{paneld4 rotate y*90 translate<-50,0,0>}   
  392.     object{paneld5 rotate y*-90 translate<50,0,0>}
  393. }
  394. // laterales de 2 pisos con escalera
  395. #declare lateral1_2=union{
  396.     object{escal5 translate<70,0,7.5> rotate y*180}
  397.     object{planta1 rotate y*180}
  398.     object{planta3 translate <0,50,0>}
  399.     object{tejlat1 translate<0,100,0>}
  400.     rotate y*180
  401. }    
  402. #declare lateral2_2=union{
  403.     object{escal52 translate<70,0,7.5> rotate y*180}
  404.     object{planta6 rotate y*180}
  405.     object{planta3 translate <0,50,0>}
  406.     object{tejlat1 translate<0,100,0>}
  407.     rotate y*180
  408. }    
  409. //laterales de 2 pisos sin escalera
  410. #declare lateral3_2=union{
  411.     object{planta2}
  412.     object{planta4 translate <0,50,0>}
  413.     object{tejlat1 translate<0,100,0>}    
  414. }    
  415. #declare lateral4_2=union{
  416.     object{planta3}
  417.     object{planta5 translate <0,50,0>}
  418.     object{tejlat1 translate<0,100,0>}    
  419. }    
  420. //laterales de un piso, sin puerta y 10 metros de largo
  421. #declare lateral1_1=union{
  422.     object{planta4}
  423.     object{tejlat1 translate<0,50,0> }
  424.     rotate y*180
  425. }
  426. #declare lateral2_1=union{
  427.     object{planta5}
  428.     object{tejlat1 translate<0,50,0>}
  429.     rotate y*180
  430. }
  431. // laterales de un piso y 5 metros de largo
  432. #declare lateral3_1=union{
  433.     object{panel14 translate<0,0,-25>}   
  434.     object{panel1 rotate y*90 translate<-25,0,0>}
  435.     object{panel1 rotate y*-90 translate<25,0,0>}
  436.     object{tejlat0 scale <0,.50,0> translate<0,51,0> rotate y*180}
  437. }    
  438. #declare lateral4_1=union{
  439.     object{panel5 translate<0,0,-25>}   
  440.     object{panel1 rotate y*90 translate<-25,0,0>}
  441.     object{panel1 rotate y*-90 translate<25,0,0>}
  442.     object{tejlat0 scale <0,.50,0> translate<0,51,0> rotate y*180}
  443. }    
  444. /*estructuras colgantes para casa grandes y torres. Son, ejem, las dos de
  445.   arriba mas el soporte */
  446. #declare colgante1=union{
  447.     object{lateral3_1 translate<0,60,0>}
  448.     object{soporte1 translate <0,0,-6.5> scale <1,1,1.7> translate <0,0,29>}
  449. }    
  450. #declare colgante2=union{
  451.     object{lateral4_1 translate<0,60,0>}
  452.     object{soporte1 translate <0,0,-6.5> scale <1,1,1.7> translate <0,0,29>}
  453. }    
  454. #declare colgante3=union{
  455.     object{colgante1 translate<-25,0,0>}
  456.     object{colgante1 translate<25,0,0>}
  457.     object{soporte1 translate <0,0,-6.5> scale <1,1,1.7> translate <-25,0,29>}
  458.     object{soporte1 translate <0,0,-6.5> scale <1,1,1.7> translate <25,0,29>}
  459. }    
  460. #declare colgante4=union{
  461.     object{colgante2 translate<-25,0,0>}
  462.     object{colgante2 translate<25,0,0>}
  463.     object{soporte1 translate <0,0,-6.5> scale <1,1,1.7> translate <-25,0,29>}
  464.     object{soporte1 translate <0,0,-6.5> scale <1,1,1.7> translate <25,0,29>}
  465. }    
  466.  
  467.  
  468. //Seguidamente creamos secciones para un par de torres cuadradas de 5 y 10
  469. //metros de lado, construidas ambas con paneles (Estas torres pueden usar
  470. //los soportes de las estructuras colgantes)
  471. //En primer lugar 4 secciones para torres de 5 metros
  472. #declare secbpan51=union{       //seccion base (puerta en -Z)
  473.     object{panel8 translate<0,0,-25>}   
  474.     object{panel5 translate<0,0,-25> rotate y*180}   
  475.     object{panel4 translate<0,0,-25> rotate y*90}
  476.     object{panel3 translate<0,0,-25> rotate y*-90}
  477. }
  478. #declare secmpan51=union{       //seccion media sin ventanas
  479.     object{panel1 translate<0,0,-25>}   
  480.     object{panel1 translate<0,0,-25> rotate y*180}   
  481.     object{panel4 translate<0,0,-25> rotate y*90}
  482.     object{panel4 translate<0,0,-25> rotate y*-90}
  483. }
  484. #declare secmpan52=union{       //seccion media con 4 ventanas
  485.     object{panel5 translate<0,0,-25>}   
  486.     object{panel5 translate<0,0,-25> rotate y*180}   
  487.     object{panel14 translate<0,0,-25> rotate y*90}
  488.     object{panel14 translate<0,0,-25> rotate y*-90}
  489. }
  490. #declare secmpan53=union{       //seccion media con una ventana
  491.     object{panel1 translate<0,0,-25>}   
  492.     object{panel2 translate<0,0,-25> rotate y*180}   
  493.     object{panel3 translate<0,0,-25> rotate y*90}
  494.     object{panel14 translate<0,0,-25> rotate y*-90}
  495. }
  496. //tejado piramidal
  497. #declare tejpir5=union{
  498.     object{paneld1 translate<0,0,-25>}
  499.     object{paneld1 translate<0,0,-25> rotate y*180}
  500.     object{tejado1 }
  501.     scale <1,1.30,1>
  502. }    
  503. //un ejemplo de torre (unos 12 metros de altura
  504. #declare torpan5_1=union{
  505.     object{secbpan51}
  506.     object{secmpan52 translate<0,50,0>}
  507.     object{secmpan51 translate<0,100,0> rotate y*90}
  508.     object{tejpir5 translate<0,150,0>}
  509. }    
  510. #declare torpan5_2=union{
  511.     object{secbpan51}
  512.     object{secmpan51 translate<0,50,0>}
  513.     object{secmpan52 translate<0,100,0>}
  514.     object{secmpan53 translate<0,150,0>}
  515.     object{tejpir5 translate<0,200,0>}
  516. }    
  517. #declare torpan5_3=union{
  518.     object{secbpan51}
  519.     object{secmpan53 translate<0,50,0>}
  520.     object{tejpir5 translate<0,100,0>}
  521. }
  522.  
  523. //tiras para las torres de 10 metros de lado
  524. #declare tira1_a=union{
  525.     object{panel1 translate<-25,0,0>}
  526.     object{panel1 translate<25,0,0>}
  527. }
  528. #declare tira2_a=union{
  529.     object{panel14 translate<-25,0,0>}
  530.     object{panel1 translate<25,0,0>}
  531. }
  532. #declare tira3_a=union{
  533.     object{panel12 translate<-25,0,0>}
  534.     object{panel2 translate<25,0,0>}
  535. }
  536. #declare tira4_a=union{
  537.     object{panel5 translate<-25,0,0>}
  538.     object{panel4 translate<25,0,0>}
  539. }
  540. #declare tira5_a=union{
  541.     object{panel2 translate<-25,0,0>}
  542.     object{panel3 translate<25,0,0>}
  543. }
  544. #declare tira6_a=union{
  545.     object{panel13 translate<-25,0,0>}
  546.     object{panel8 translate<25,0,0>}
  547. }
  548. #declare tira7_a=union{
  549.     object{panel5 translate<-25,0,0>}
  550.     object{panel5 translate<25,0,0>}
  551. }
  552. #declare tira8_a=union{
  553.     object{panel11 translate<-25,0,0>}
  554.     object{panel5 translate<25,0,0>}
  555. }
  556. #declare tira9_a=union{
  557.     object{panel1 translate<-25,0,0>}
  558.     object{panel4 translate<25,0,0>}
  559. }
  560.  
  561. // ahora 4 secciones para torres de 10 metros de lado
  562. #declare secbpan101=union{  //seccion base (puertas en +X y +Z)
  563.     object{tira4_a translate<0,0,-50>}
  564.     object{tira6_a translate<0,0,-50> rotate y*90}   
  565.     object{tira8_a translate<0,0,-50> rotate y*180}
  566.     object{tira2_a translate<0,0,-50> rotate y*-90}
  567. }
  568. #declare secmpan101=union{       //2 lados sin ventanas y otro con
  569.     object{tira9_a translate<0,0,-50>}
  570.     object{tira9_a translate<0,0,-50> rotate y*90}
  571.     object{tira7_a translate<0,0,-50> rotate y*-90}
  572.     object{tira7_a translate<0,0,-50> rotate y*180}
  573. }
  574. #declare secmpan102=union{       //una sola ventana
  575.     object{tira1_a translate<0,0,-50>}
  576.     object{tira5_a translate<0,0,-50> rotate y*90}
  577.     object{tira9_a translate<0,0,-50> rotate y*-90}
  578.     object{tira2_a translate<0,0,-50> rotate y*180}
  579. }
  580. #declare secmpan103=union{       //un lado sin ventanas y otro con
  581.     object{tira1_a translate<0,0,-50>}
  582.     object{tira1_a translate<0,0,-50> rotate y*90}
  583.     object{tira2_a translate<0,0,-50> rotate y*-90}
  584.     object{tira2_a translate<0,0,-50> rotate y*180}
  585. }
  586.  
  587. #declare tejado2=union{
  588.     object{mtej2 rotate y*-90 translate <0,0,-25>}
  589.     object{mtej2 rotate y*-90 translate <0,0,-25> rotate y*180}
  590.     texture{tejas}
  591. }    
  592. #declare tejpir10=union{
  593.     object{tejado2 translate<-25,0,0>}
  594.     object{tejado2 translate<25,0,0>}
  595.     object{paneld6 rotate y*90 translate <-50,0,0>}
  596.     object{paneld6 rotate y*-90 translate <50,0,0>}
  597.     scale <1,1.30,1>
  598. }
  599. #declare torpan10_1=union{      //torre de 27 metros 
  600.     object{secbpan101}
  601.     object{secmpan101 translate<0,50,0>}
  602.     object{secmpan103 translate<0,100,0>}
  603.     object{secmpan101 translate<0,150,0>}
  604.     object{tejpir10 translate<0,200,0>}
  605.     object{torpan5_1 translate<0,0,-60>}
  606.     object{torpan5_1 rotate y*90 translate<0,0,-50> rotate y*90}
  607.     object{torpan5_1 rotate y*90 translate<0,0,-50> rotate y*-90}
  608.     object{torpan5_1 translate<0,0,-60> rotate y*180}
  609. }    
  610. #declare torpan10_2=union{      //torre de 27 metros con colgantes 
  611.     object{secbpan101}
  612.     object{secmpan101 translate<0,50,0>}
  613.     object{secmpan103 translate<0,100,0>}
  614.     object{colgante1 translate<0,50,-50>}
  615.     object{colgante2 translate<0,50,-50> rotate y*90}
  616.     object{colgante2 translate<0,50,-50> rotate y*-90}
  617.     object{colgante1 translate<0,50,-50> rotate y*180}
  618.     object{secmpan101 translate<0,150,0>}
  619.     object{tejpir10 translate<0,200,0>}
  620. }    
  621.  
  622.  
  623.  
  624.